using System;
using System.Collections.Generic;
using System.Text;
using SDMX_Common = SDMX_ML.Framework.Common;

namespace SDMX_ML.Framework.Structure
{
    public class TimeDimensionType
    {
        private List<TextFormatType> _textFormat;


        public TimeDimensionType(SDMX_Common.IDType conceptRef)
        {
            _textFormat = new List<TextFormatType>();

            if (conceptRef != null)
            {
                _conceptRef = conceptRef;
            }
            else
            {
                throw new Exception("Attribute ConceptRef is a required field");
            }
        }

        public TimeDimensionType(string conceptRef)
        {
            _textFormat = new List<TextFormatType>();

            if (!String.IsNullOrEmpty(conceptRef))
            {
                _conceptRef = new SDMX_Common.IDType(conceptRef);
            }
            else
            {
                throw new Exception("Attribute ConceptRef is a required field");
            }
        }

        public List<TextFormatType> TextFormat
        {
            get { return _textFormat; }
            set { _textFormat = value; }
        }
        private SDMX_Common.AnnotationsType _annotations;

        public SDMX_Common.AnnotationsType Annotations
        {
            get { return _annotations; }
            set { _annotations = value; }
        }
        private SDMX_Common.IDType _conceptRef;

        public SDMX_Common.IDType ConceptRef
        {
            get { return _conceptRef; }
            set { _conceptRef = value; }
        }
        private string _conceptVersion;

        public string ConceptVersion
        {
            get { return _conceptVersion; }
            set { _conceptVersion = value; }
        }
        private SDMX_Common.IDType _conceptAgency;

        public SDMX_Common.IDType ConceptAgency
        {
            get { return _conceptAgency; }
            set { _conceptAgency = value; }
        }
        private SDMX_Common.IDType _conceptSchemeRef;

        public SDMX_Common.IDType ConceptSchemeRef
        {
            get { return _conceptSchemeRef; }
            set { _conceptSchemeRef = value; }
        }
        private SDMX_Common.IDType _conceptSchemeAgency;

        public SDMX_Common.IDType ConceptSchemeAgency
        {
            get { return _conceptSchemeAgency; }
            set { _conceptSchemeAgency = value; }
        }
        private SDMX_Common.IDType _codelist;

        public SDMX_Common.IDType Codelist
        {
            get { return _codelist; }
            set { _codelist = value; }
        }
        private string _codeListVersion;

        public string CodeListVersion
        {
            get { return _codeListVersion; }
            set { _codeListVersion = value; }
        }
        private SDMX_Common.IDType _codeListAgency;

        public SDMX_Common.IDType CodeListAgency
        {
            get { return _codeListAgency; }
            set { _codeListAgency = value; }
        }
        private bool? _crossSectionalAttachDataSet;

        public bool? CrossSectionalAttachDataSet
        {
            get { return _crossSectionalAttachDataSet; }
            set { _crossSectionalAttachDataSet = value; }
        }
        private bool? _crossSectionalAttachGroup;

        public bool? CrossSectionalAttachGroup
        {
            get { return _crossSectionalAttachGroup; }
            set { _crossSectionalAttachGroup = value; }
        }
        private bool? _crossSectionalAttachSection;

        public bool? CrossSectionalAttachSection
        {
            get { return _crossSectionalAttachSection; }
            set { _crossSectionalAttachSection = value; }
        }
        private bool? _crossSectionalAttachObservation;

        public bool? CrossSectionalAttachObservation
        {
            get { return _crossSectionalAttachObservation; }
            set { _crossSectionalAttachObservation = value; }
        }




    }
}
